home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / test / t11a.c < prev    next >
C/C++ Source or Header  |  1990-07-23  |  1KB  |  58 lines

  1. #define MAX_ERROR 4
  2.  
  3. int errct, subtest=1;
  4. extern errno;
  5.  
  6. main(argc, argv, envp)
  7. int argc;
  8. char *argv[], *envp[];
  9. {
  10. /* See if arguments passed ok. */
  11.  
  12.   char aa[4];
  13.  
  14.   if (diff(argv[0], "t11a")) e(21);
  15.   if (diff(argv[1], "arg0")) e(22);
  16.   if (diff(argv[2], "arg1")) e(23);
  17.   if (diff(argv[3], "arg2")) e(24);
  18.   if (diff(envp[0], "spring")) e(25);
  19.   if (diff(envp[1], "summer")) e(26);
  20.   if (argc != 4) e(27);
  21.  
  22.   /* Now see if the files are ok. */
  23.   if (read(3, aa, 1000) != 2) e(28);
  24.   if (aa[0] != 7 || aa[1] != 9) e(29);
  25.  
  26.   if (getuid() == 10) e(30);
  27.   if (geteuid() != 10) e(31);
  28.   if (getgid() == 20) e(32);
  29.   if (getegid() != 20) e(33);
  30.  
  31.   if (open("t1", 0) < 0) e(34);
  32.   if (open("t2", 0) < 0) e(35);
  33.   exit(100);
  34. }
  35.  
  36. diff(s1, s2)
  37. char *s1, *s2;
  38. {
  39.   while (1) {
  40.     if (*s1 == 0 && *s2 == 0) return(0);
  41.     if (*s1 != *s2) return (1);
  42.     s1++;
  43.     s2++;
  44.   }
  45. }
  46.  
  47.  
  48. e(n)
  49. int n;
  50. {
  51.   printf("Subtest %d,  error %d  errno=%d  ", subtest, n, errno);
  52.   perror("");
  53.   if (errct++ > MAX_ERROR) {
  54.     printf("Too many errors; test aborted\n");
  55.     exit(1);
  56.   }
  57. }
  58.